Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 vector-feature-night-mode-enabled skin-theme-clientpref-os vector-sticky-header-enabled" lang="fr" dir="ltr"><head>
<meta charset="UTF-8">
<title>Flowgorithm</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://fr.wikipedia.org/wiki/Flowgorithm"> <link href="./_mw_/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Flowgorithm rootpage-Flowgorithm skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Flowgorithm</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="fr" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="fr" dir="ltr">
<p class="mw-empty-elt">
</p>
<table class="infobox_v2 infobox infobox--frwiki noarchive">
<tbody><tr>
<td colspan="2" class="entete informatique" style="background-color:#EEEEEE;color:black;">Flowgorithm<style data-mw-deduplicate="TemplateStyles:r228712691">
/* start https://fr.wikipedia.org/ */


.mw-parser-output .entete.informatique{background-image:url("./_mw_/Picto.nfo.png")}


/* end https://fr.wikipedia.org/ */
</style>
</td></tr>
<tr><td colspan="3" style="text-align:center; line-height: 1.5em;"> </td></tr>
<tr>
<td colspan="3" style="text-align:center; line-height: 1.5em;"> </td></tr>
<tr>
<td colspan="2"><hr style="height:2px; color:inherit; background-color:#EEEEEE;"></td></tr>
<tr>
<th scope="row">Date de première version
</th>
<td>2014
</td>
</tr>
<tr>
<th scope="row"><a href="Paradigme_(programmation)" title="Paradigme (programmation)">Paradigme</a>
</th>
<td><a href="Programmation_imp%C3%A9rative" title="Programmation impérative">Impératif</a>, <a href="Programmation_proc%C3%A9durale" title="Programmation procédurale">Procédural</a>, <a href="Programmation_structur%C3%A9e" title="Programmation structurée">Structuré</a>
</td>
</tr>
<tr>

<th scope="row">Auteur
</th>
<td>Devin Cook
</td>
</tr>
<tr>



<th scope="row"><a href="Version_d'un_logiciel" title="Version d'un logiciel">Dernière version</a>
</th>
<td>3.3.1 (17 août 2022)
</td>
</tr>
<tr>

<th scope="row">Typage
</th>
<td><a href="Typage_fort" title="Typage fort">Fort</a>, <a href="Typage_statique" title="Typage statique">Statique</a>
</td>
</tr>
<tr>


<th scope="row">Influencé par
</th>
<td><a href="Organigramme_de_programmation" title="Organigramme de programmation">Algorigramme</a>
</td>
</tr>
<tr>


<th scope="row"><a href="Langage_de_programmation" title="Langage de programmation">Écrit en</a>
</th>
<td><a href="C_Sharp" title="C Sharp">C#</a>
</td>
</tr>
<tr>
<th scope="row"><a href="Syst%C3%A8me_d'exploitation" title="Système d'exploitation">Système d'exploitation</a>
</th>
<td>Windows <br> <small>(portage prévu pour OS X et Linux)</small>
</td>
</tr>
<tr>

<th scope="row"><a href="Licence_de_logiciel" title="Licence de logiciel">Licence</a>
</th>
<td>Freeware
</td>
</tr>
<tr>
<th scope="row"><a href="Site_web" title="Site web">Site web</a>
</th>
<td><span class="url"><a rel="nofollow" class="external text" href="http://www.flowgorithm.org">www.flowgorithm.org</a></span>
</td>
</tr>
<tr>
<th scope="row"><a href="Extension_de_nom_de_fichier" title="Extension de nom de fichier">Extensions de fichiers</a>
</th>
<td>.fprg
</td>
</tr>
<tr>

</tr>
</tbody></table>
<p><b>Flowgorithm</b> est un outil de création et modification graphiques de programmes informatiques sous forme d'<a href="Organigramme_de_programmation" title="Organigramme de programmation">algorigramme</a>. Il permet ensuite aux programmeurs d'exécuter ces programmes tout en pouvant en suivre graphiquement le déroulement .
</p><p>Cette approche vise à mettre en avant les algorithmes plutôt que la syntaxe d'un langage de programmation spécifique. L'algorigramme peut être traduit en différents langages de programmation.
</p><p>Flowgorithm est un langage et un environnement de programmation conçu pour être uniquement un instrument d'apprentissage.
</p>

<div class="mw-heading mw-heading2"><h2 id="Origine_du_nom,_licence_et_internationalisation"><span id="Origine_du_nom.2C_licence_et_internationalisation"></span>Origine du nom, licence et internationalisation</h2></div>
<p>Flowgorithm est un «&nbsp;<a href="Mot-valise" title="Mot-valise">mot-valise</a>&nbsp;» constitué de «&nbsp;Flowchart&nbsp;» et «&nbsp;Algorithm&nbsp;»<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>. C'est un <a href="Logiciel_propri%C3%A9taire" title="Logiciel propriétaire">logiciel propriétaire</a> distribué gratuitement (<a href="Freeware" title="Freeware">freeware</a>)<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>. L'environnement et le langage sont traduits en chinois, tchèque, anglais, français, galicien, allemand, hongrois, italien, portugais, espagnol et japonais.
</p>
<div class="mw-heading mw-heading2"><h2 id="Le_langage">Le langage</h2></div>
<p>Flowgorithm propose la plupart des <a href="Langage_de_programmation#Notions_courantes" title="Langage de programmation">notions courantes</a> que l'on retrouve dans les langages de programmation, aussi bien au niveau des instructions sous forme graphique que des expressions évaluables&nbsp;:
</p>
<ul><li><a href="Type_(informatique)" title="Type (informatique)">Types de données</a>&nbsp;: les entiers, les réels, les chaînes et les booléens</li>
<li><a href="Structure_de_donn%C3%A9es" title="Structure de données">Structure de données</a>&nbsp;: tableau monodimension et monotype</li>
<li>Variables&nbsp;: déclaration et affectation d'une valeur obligatoires</li>
<li>Constantes&nbsp;: <code>true</code>, <code>false</code> et <code>pi</code></li>
<li>Opérateurs&nbsp;: arithmétiques, logiques, concaténation et comparaisons</li>
<li><a href="Structure_de_contr%C3%B4le" title="Structure de contrôle">Structures de contrôle</a>&nbsp;:
<ul><li>Alternative&nbsp;: <a href="Structure_de_contr%C3%B4le" title="Structure de contrôle">Test si sinon</a></li>
<li>Boucles&nbsp;: <a href="Structure_de_contr%C3%B4le" title="Structure de contrôle">"Tant que" à précondition</a>, "Tant que" à post-condition, <a href="Boucle_for" title="Boucle for">Boucle for</a></li></ul></li>
<li>Commentaires&nbsp;: il est possible d'ajouter des blocs de commentaires à l'Algorigramme</li>
<li><a href="Fonction_informatique" class="mw-redirect" title="Fonction informatique">Fonctions</a>&nbsp;:
<ul><li>Peuvent être appelées&nbsp;:
<ul><li>lors de l'évaluation d'une expression</li>
<li>par une instruction spécifique d'appel (valeur de retour ignorée)</li></ul></li>
<li><a href="Param%C3%A8tre_(programmation_informatique)" title="Paramètre (programmation informatique)">Passage des arguments par copie</a> (aussi appelé par valeur)</li>
<li>Fonctions prédéfinies&nbsp;: mathématiques, chaînes de caractères, <a href="Conversion_de_type" title="Conversion de type">conversion de type</a>, tirage aléatoire et taille d'un tableau</li>
<li>Une fonction Principale (<a href="Point_d'entr%C3%A9e" title="Point d'entrée">Point d'entrée</a>)</li>
<li>Fonctions définies
<ul><li>0…n paramètre(s) typé(s)</li>
<li>0…1 valeur de retour typée</li></ul></li></ul></li>
<li>Interface utilisateur&nbsp;:
<ul><li>Une fenêtre de dialogue permet&nbsp;:
<ul><li>la saisie de valeurs affectées à des variables</li>
<li>l'affichage du résultat de l'évaluation d'expression</li>
<li>sous forme d'un dialogue type SMS</li></ul></li></ul></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Exemple_d'algorigramme"><span id="Exemple_d.27algorigramme"></span>Exemple d'algorigramme</h2></div>
<p>Voici un exemple qui reprend la chanson 99 Bottles of Beer. Le programme est constitué de la fonction principale <code>Main</code> et d'une fonction <code>bottle (Integer number)</code> qui retourne une chaîne avec ou sans "s" à bottle&nbsp;:
</p>

<div class="mw-heading mw-heading2"><h2 id="L'environnement_de_développement_et_d'exécution"><span id="L.27environnement_de_d.C3.A9veloppement_et_d.27ex.C3.A9cution"></span>L'environnement de développement et d'exécution</h2></div>
<p>Flowgorithm comprend une fenêtre principale pour&nbsp;:
</p>
<ul><li>la construction de l'Algorigramme de la fonction principale ou et des autres fonctions définies</li>
<li>l'exécution du programme en mode débogage (pas à pas) ou en contrôlant la vitesse d'exécution du programme</li></ul>
<p>L'utilisateur peut choisir un style de diagramme en sélectionnant un jeu de couleurs et un type de figures parmi l'ensemble de ceux proposés par le logiciel.
</p><p>et des fenêtres annexes affichables à la demande&nbsp;:
</p>
<ul><li>Une fenêtre d'inspection des variables</li>
<li>Une fenêtre de dialogue utilisateur</li>
<li>Une fenêtre de code source généré&nbsp;:
<ul><li>Flowgorithm peut générer en temps réel le code source correspondant au programme dans de nombreux langages de programmation&nbsp;: C#, C++, Delphi/Pascal, Java, JavaScript, Lua, Perl, Python, QBasic, Ruby, Swift 2, <a href="Visual_Basic" title="Visual Basic">Visual Basic</a>. NET et Visual Basic for Applications (utilisé dans Microsoft Office)</li></ul></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Format_de_fichier_.fprg">Format de fichier .fprg</h2></div>
<p>Les programmes en Flowgorithm ne sont pas des programmes volumineux et complexes&nbsp;; ils ne nécessitent pas l'utilisation d'un format compressé et/ou binaire. Les fichiers sont stockés dans un format XML simple<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> afin de faciliter le portage sur d'autres systèmes et de pouvoir être facilement utilisé par des outils tiers.
</p>
<div class="mw-highlight mw-highlight-lang-xml mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span class="linenos" data-line="1"></span><span class="cp">&lt;?xml version="1.0"?&gt;</span>
<span class="linenos" data-line="2"></span><span class="nt">&lt;flowgorithm</span><span class="w"> </span><span class="na">fileversion=</span><span class="s">"1.7"</span><span class="nt">&gt;</span>
<span class="linenos" data-line="3"></span><span class="w"> </span><span class="nt">&lt;attributes&gt;</span>
<span class="linenos" data-line="4"></span><span class="w"> </span><span class="nt">&lt;attribute</span><span class="w"> </span><span class="na">name=</span><span class="s">"name"</span><span class="w"> </span><span class="na">value=</span><span class="s">"Age"</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="5"></span><span class="w"> </span><span class="nt">&lt;attribute</span><span class="w"> </span><span class="na">name=</span><span class="s">"authors"</span><span class="w"> </span><span class="na">value=</span><span class="s">"Devin Cook"</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="6"></span><span class="w"> </span><span class="nt">&lt;attribute</span><span class="w"> </span><span class="na">name=</span><span class="s">"about"</span><span class="w"> </span><span class="na">value=</span><span class="s">"A simple example of an If Statement"</span><span class="nt">&gt;</span>
<span class="linenos" data-line="7"></span><span class="w"> </span><span class="nt">&lt;attribute</span><span class="w"> </span><span class="na">name=</span><span class="s">"saved"</span><span class="w"> </span><span class="na">value=</span><span class="s">"1/7/2015 11:27:10 PM"</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="8"></span><span class="w"> </span><span class="nt">&lt;/attributes&gt;</span>
<span class="linenos" data-line="9"></span><span class="w"> </span><span class="nt">&lt;function</span><span class="w"> </span><span class="na">name=</span><span class="s">"Main"</span><span class="w"> </span><span class="na">type=</span><span class="s">"None"</span><span class="w"> </span><span class="na">variable=</span><span class="s">""</span><span class="nt">&gt;</span>
<span class="linenos" data-line="10"></span><span class="w"> </span><span class="nt">&lt;parameters/&gt;</span>
<span class="linenos" data-line="11"></span><span class="w"> </span><span class="nt">&lt;body&gt;</span>
<span class="linenos" data-line="12"></span><span class="w"> </span><span class="nt">&lt;declare</span><span class="w"> </span><span class="na">name=</span><span class="s">"age"</span><span class="w"> </span><span class="na">type=</span><span class="s">"Integer"</span><span class="w"> </span><span class="na">array=</span><span class="s">"False"</span><span class="w"> </span><span class="na">size=</span><span class="s">""</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="13"></span><span class="w"> </span><span class="nt">&lt;output</span><span class="w"> </span><span class="na">expression=</span><span class="s">"&amp;quot;Please enter your age&amp;quot;"</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="14"></span><span class="w"> </span><span class="nt">&lt;input</span><span class="w"> </span><span class="na">variable=</span><span class="s">"age"</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="15"></span><span class="w"> </span><span class="nt">&lt;if</span><span class="w"> </span><span class="na">expression=</span><span class="s">"age &amp;gt;= 21"</span><span class="nt">&gt;</span>
<span class="linenos" data-line="16"></span><span class="w"> </span><span class="nt">&lt;then&gt;</span>
<span class="linenos" data-line="17"></span><span class="w"> </span><span class="nt">&lt;output</span><span class="w"> </span><span class="na">expression=</span><span class="s">"&amp;quot;Kegger!&amp;quot;"</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="18"></span><span class="w"> </span><span class="nt">&lt;/then&gt;</span>
<span class="linenos" data-line="19"></span><span class="w"> </span><span class="nt">&lt;else&gt;</span>
<span class="linenos" data-line="20"></span><span class="w"> </span><span class="nt">&lt;output</span><span class="w"> </span><span class="na">expression=</span><span class="s">"&amp;quot;Milk!&amp;quot;"</span><span class="nt">/&gt;</span>
<span class="linenos" data-line="21"></span><span class="w"> </span><span class="nt">&lt;/else&gt;</span>
<span class="linenos" data-line="22"></span><span class="w"> </span><span class="nt">&lt;/if&gt;</span>
<span class="linenos" data-line="23"></span><span class="w"> </span><span class="nt">&lt;/body&gt;</span>
<span class="linenos" data-line="24"></span><span class="w"> </span><span class="nt">&lt;/function&gt;</span>
<span class="linenos" data-line="25"></span><span class="nt">&lt;/flowgorithm&gt;</span>
</pre></div>
<div class="mw-heading mw-heading2"><h2 id="Notes_et_références"><span id="Notes_et_r.C3.A9f.C3.A9rences"></span>Notes et références</h2></div>
<div class="references-small decimal" style=""><div class="mw-references-wrap"><ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><a href="#cite_ref-1">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://www.flowgorithm.org/about/info.htm"><cite style="font-style:normal;" lang="en">Page About - http://www.flowgorithm.org</cite></a>&nbsp;»</span>.</span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><a href="#cite_ref-2">↑</a> </span><span class="reference-text"><span class="ouvrage"><abbr class="abbr indicateur-langue" title="Langue : anglais">(en)</abbr> «&nbsp;<a rel="nofollow" class="external text" href="http://www.flowgorithm.org/about/Flowgorithm%20-%20EULA.pdf"><cite style="font-style:normal;" lang="en">Licence au format PDF - http://www.flowgorithm.org</cite></a>&nbsp;»</span>.</span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><a href="#cite_ref-3">↑</a> </span><span class="reference-text"><span class="ouvrage">«&nbsp;<a rel="nofollow" class="external text" href="http://flowgorithm.org/documentation/file-format.htm"><cite style="font-style:normal;">Flowgorithm - Documentation - File Format</cite></a>&nbsp;», sur <span class="italique">flowgorithm.org</span> <small style="line-height:1em;">(consulté le <time class="nowrap" datetime="2015-12-28" data-sort-value="2015-12-28">28 décembre 2015</time>)</small></span></span>
</li>
</ol></div>
</div>
<ul id="bandeau-portail" class="bandeau-portail"><li><span class="bandeau-portail-element"><span class="bandeau-portail-icone"><span class="noviewer" typeof="mw:File"></span></span> <span class="bandeau-portail-texte">Portail de la programmation informatique</span> </span></li> </ul></div><!--htdig_noindex--><div><div class="zim-footer">
Cet article est issu de <a class="external text" title="Dernière modification le 2024-01-03" href="https://fr.wikipedia.org/wiki/?title=Flowgorithm&amp;oldid=211148540">Wikipédia</a>. Sauf mention contraire, le texte est disponible sous <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.fr">Creative Commons Attribution-Share Alike 4.0</a>. Des conditions supplémentaires peuvent s’appliquer aux fichiers multimédias.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>